package com.mjlf.framework.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * @auther a123
 * @create 2018-08-25 14:33
 * @desc 被该注解标注的类的实例将会由服务管理
 * 该注解提供scope属性， 如果该属性职位"single"表示单例实例，将会在系统启动时创建有该注解标准的类实例，同时保存到内存中，
 * 以后每次需要使用的时候都获取当前实例
 * 如果scope 值为"property",这系统启动时不会创建类实例，而是在每次需要的时候有再创建
 *
 * 实例在内存中统一使用类全名作为唯一标示
 *
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Component {
    String scope() default "single";
}
